package com.dl.exam.service;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.dl.exam.entity.Page;
import com.dl.exam.entity.User;

import java.util.List;

/**
 * @author DL
 * @create 2022-01-19 14:39
 */
public interface AdminService {

    /**
     * 更新账号状态
     * @param userId 用户名
     * @param state 状态 1=正常 0=锁定
     * @return 受影响的行数
     */
    boolean modifyState(String userId, int state);

    /**
     * 更新用户角色信息
     * @param userId 用户名
     * @param roleIdList 状态 1=正常 0=锁定
     * @return 受影响的行数
     */
    boolean modifyUserRole(String userId, JSONArray roleIdList);


    /**
     * 更新用户个人信息
     * @param user 用户
     * @return 受影响的行数
     */
    boolean modifyUserAllInfo(JSONObject user);

    /**
     * 查询用户个人信息
     * @param userId 用户id
     * @return 用户
     */
    User getUserAllInfo(String userId);

    /**
     * 查询所有学生
     * @param currentPage 当前页
     * @param pageSize 页面大小
     */
    Page<User> getAllUser(int currentPage, int pageSize);

    /**
     * 根据用户名搜索用户
     * @param condition 条件
     * @return 用户分页
     */
    Page<User> getUserByCondition(JSONObject condition);

    /**
     * 根据角色id查询用户
     * @param roleIdList 角色id
     * @param currentPage 当前页
     * @param pageSize 页面大小
     * @return 用户分页
     */
    Page<User> getUserByRoleId(List<Integer> roleIdList, int currentPage, int pageSize);
}
